package cn.java81.myschool.dao;

import cn.java81.myschool.entity.Student;
import org.apache.ibatis.annotations.Param;

import java.util.*;

public interface StudentDao {
    public int findTotal();

    /**
     *
     * @param sname 模糊查找
     * @param qq    模糊查找
     * @param tele  模糊查找
     * @param enterStart 入学时间的起点
     * @param enterEnd   入学时间的终点
     * @return
     */
    public List<Student>  search(@Param("pageNo")int pageNo,@Param("pageSize") int pageSize, @Param("sname") String sname,@Param("qq") String qq, @Param("telephone")String tele,@Param("enterStart") Date enterStart, @Param("enterEnd")Date enterEnd,@Param("orderby") String orderBy);

    public int  searchTotal(@Param("sname") String sname,@Param("qq") String qq, @Param("telephone")String tele,@Param("enterStart") Date enterStart, @Param("enterEnd")Date enterEnd);

    public List<Student>  paging(@Param("sname") String sname,@Param("qq") String qq, @Param("telephone")String tele,@Param("enterStart") Date enterStart, @Param("enterEnd")Date enterEnd,@Param("orderby") String orderBy);

    public List<Student> search0(Map<String,Object> params);

    //读取学生个人信息，和他的考试记录
    public Student get0(int stuno);

    public int update(@Param("s") Student stu);
    public int add(Student stu);

    //根据多个年级号，查询学生信息
    public List<Student> search3( @Param("grades") int []grades,@Param("cols")String...cols);

    /**
     * 1:查找本月
     * 2：最近半年
     * 3：最近1年的
     * @param type
     * @return
     */
    public List<Student> searchByDate(@Param("type") int type);


    public List<Map<String,Long>> countCity();
}
